package com.ywk.base.javaBase.random;

import java.math.BigDecimal;
import java.security.SecureRandom;
import java.util.Random;

/**
 * @Author zbh
 * @Date 2023/4/19
 */
public class RandomTest {
    public static void main(String[] args) {

        double a = Math.random() * 4;
        BigDecimal bg = new BigDecimal(a);
        //保留5位小数（去除末尾0）
        double f1 = bg.setScale(5, BigDecimal.ROUND_HALF_UP).doubleValue();
        System.out.println(f1);

        //方式一：Random
        // 步骤1：创建Random对象
        Random random = new Random();
        // 步骤2：生成随机数
        int randomNumber = random.nextInt(6);//生成【0-5】随机数（包含边界值）
        // 步骤3：将随机数映射到5到10的范围
        int finalNumber = randomNumber + 5;//将【0-5】区间随机数映射到【5-10】
        // 输出最终的随机数
        System.out.println("Random：" + finalNumber);

        //方式二：Math.random()，公式：(int)(Math.random()*(大-小+1) ) + 小 生成区间【5-10】的随机数
        System.out.println("Math.random()："+(int)(Math.random() * (10-5+1)+5));

        //方式三：SecureRandom（安全性高）
        SecureRandom sr = new SecureRandom(); // 符合安全敏感用例
        System.out.println("SecureRandom：" +(sr.nextInt(6)+5));
        System.out.println(sr.nextFloat() * 7.5f);

    }
}
